<?php

class Generator_Action_Table extends Generator_Action_Default 
{
    
    /**
     * URL для перенаправления агента после успешного сохранения формы.
     *
     * :KLUDGE: morozov 17102007: Вроде как это не совсем дело формы — перенаправлять,
     * это больше похоже на задачу для менеджера списков или кого-нибудь подобного
     * на фронтенде. Поживем — увидим :)
     *
     * @var string
     */
    public $redirect_url = 'cue.html';
    
    /**
    * Template for cue sheet
    * 
    * @var string
    */
    private $_cuesheet_template = 'generator/cuesheet.tpl';
    
    /**
    * Initialize form elements.
    * 
    */
    protected function _initElements() 
    {
        $this->_message_error = __('TRACKLIST_DEFAULT_ERROR_MESSAGE');
        
        
        parent::_initElements();
        
        $this->_setAsRequired
        (
            'perfomer_common', 
            'title_common', 
            'file_common', 
            'perfomer[1]', 
            'title[1]', 
            'perfomer[2]', 
            'title[2]'
        );
    }
    
    /**
    * Save values
    * 
    */
    protected function _insert() 
    {
        $values = array_extract($this->_getValues(), 
            array('perfomer_common', 'title_common', 'file_common'));
        
        
        $cycle = range(1, $this->_getRowsNumber());
        foreach ($cycle as $i) {
            $values += array(
                'perfomer[' . $i . ']' => $this->_getValue('perfomer[' . $i . ']'), 
                'title[' . $i . ']' => $this->_getValue('title[' . $i . ']'), 
                
                'index[' . $i . '][hr]' => $this->_getValue('index[' . $i . '][hr]'), 
                'index[' . $i . '][mn]' => $this->_getValue('index[' . $i . '][mn]'), 
                'index[' . $i . '][sc]' => $this->_getValue('index[' . $i . '][sc]'), 
                'index[' . $i . '][fr]' => $this->_getValue('index[' . $i . '][fr]'), 
            );
        }
        
        $this->_model()->setValues($values, $this->_getRowsNumber(), $this->_session_key);
    }
    
    /**
    * Return number of rows
    * 
    * @return integer
    */
    protected function _getRowsNumber() 
    {
        return count($_POST['perfomer']);
    }
    
    /**
    * Set redirect url
    * 
    */
    protected function _done() 
    {
        $this->redirect_url = 'cue.html?session=' . $this->_session_key;
        parent::_done();
    }
    
}

